package com.un.ebs.sys.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.IService;
import com.un.ebs.sys.domain.Ent;
import com.un.ebs.sys.domain.EntLinkman;
import com.un.ebs.sys.dto.EntAddDto;
import com.un.ebs.sys.dto.EntLinkmanDto;
import com.un.ebs.sys.dto.EntUpdateDto;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author liubo
 * @since 2019-09-15
 */
public interface EntService extends IService<Ent> {

    String add(EntAddDto req);

    void saveLinkman(EntLinkmanDto req);

    void update(EntUpdateDto req);

    void updateLinkman(String entId, String phone, String name, String address);

    void setDefaultLinkman(String id);

    Ent queryById(String id);

    Ent queryByTenantId(String id);

    List<Ent> queryEntWxConfig();

    /**
     * 指定的用户是否在企业中
     *
     * @param tenantId
     * @param userId
     * @return
     */
    Boolean hasInTenant(String tenantId, String userId);

    Boolean hasInEnt(String entId, String userId);

    Boolean hasLinkman(String entId, String phone);

    void delete(String id);

    EntLinkman queryLinkmanById(String id);

    EntLinkman queryLinkmanByDefault(String entId);

    List<EntLinkman> queryLinkman(String entId);

    void deleteLinkman(String id);

    @Override
    default List<Ent> list() {
        LambdaQueryWrapper<Ent> lq = Wrappers.lambdaQuery();
        lq.orderByAsc(Ent::getName);
        return getBaseMapper().selectList(lq);
    }
}
